package GA;

public interface GA_Param {
    /*
     * 	Requirements for Multidimensional Knapsack Problem.
     */
    //  Database 1
    public static final int[] VALUE_ARRAY = {
            560, 1125, 300, 620, 2100, 431, 68, 328, 47, 122, 322, 196, 41, 25, 425, 4260, 416,
            115, 82, 22, 631, 132, 420, 86, 42, 103, 215, 81, 91, 26, 49, 420, 316, 72, 71, 49, 108,
            116, 90, 738, 1811, 430, 3060, 215, 58, 296, 620, 418, 47, 81};

    public static final int[][] ATTRIBUTE_ARRAY = {
            {40, 91, 10, 30, 160, 20, 3, 12, 3, 18, 9, 25, 1, 1, 10, 280, 10, 8, 1, 1, 49, 8, 21, 6, 1, 5, 10, 8, 2, 1, 0, 10, 42, 6, 4, 8, 0, 10, 1, 40, 86, 11, 120, 8, 3, 32, 28, 13, 2, 4},
            {16, 92, 41, 16, 150, 23, 4, 18, 6, 0, 12, 8, 2, 1, 0, 200, 20, 6, 2, 1, 70, 9, 22, 4, 1, 5, 10, 6, 4, 0, 4, 12, 8, 4, 3, 0, 10, 0, 6, 28, 93, 9, 30, 22, 0, 36, 45, 13, 2, 2},
            {38, 39, 32, 71, 80, 26, 5, 40, 8, 12, 30, 15, 0, 1, 23, 100, 0, 20, 3, 0, 40, 6, 8, 0, 6, 4, 22, 4, 6, 1, 5, 14, 8, 2, 8, 0, 20, 0, 0, 6, 12, 6, 80, 13, 6, 22, 14, 0, 1, 2},
            {8, 71, 30, 60, 200, 18, 6, 30, 4, 8, 31, 6, 3, 0, 18, 60, 21, 4, 0, 2, 32, 15, 31, 2, 2, 7, 8, 2, 8, 0, 2, 8, 6, 7, 1, 0, 0, 20, 8, 14, 20, 2, 40, 6, 1, 14, 20, 12, 0, 1},
            {38, 52, 30, 42, 170, 9, 7, 20, 0, 3, 21, 4, 1, 2, 14, 310, 8, 4, 6, 1, 18, 15, 38, 10, 4, 8, 6, 0, 0, 3, 0, 10, 6, 1, 3, 0, 3, 5, 4, 0, 30, 12, 16, 18, 3, 16, 22, 30, 4, 0}
    };
    public static final int[] LIMIT_ARRAY = {800, 650, 550, 550, 650};


    //	Database 2
    //	public static final int VALUE_ARRAY[]={
    //			100,220,90,400,300,400,205,120,160,580,400,140,100,1300,650
    //	};
    //
    //	public static final int ATTRIBUTE_ARRAY[][]={
    //			{8,24,13,80,70,80,45,15,28,90,130,32,20,120,40,},
    //			{8,44,13,100,100,90,75,25,28,120,130,32,40,160,40},
    //			{3,6,4,20,20,30,8,3,12,14,40,6,3,20,5},
    //			{5,9,6,40,30,40,16,5,18,24,60,16,11,30,25},
    //			{5,11,7,50,40,40,19,7,18,29,70,21,17,30,25},
    //			{5,11,7,55,40,40,21,9,18,29,70,21,17,35,25},
    //			{0,0,1,10,4,10,0,6,0,6,32,3,0,70,10},
    //			{3,4,5,20,14,20,6,12,10,18,42,9,12,100,20},
    //			{3,6,9,30,29,20,12,12,10,30,42,18,18,110,20},
    //			{3,8,9,35,29,20,16,15,10,30,42,20,18,120,20},
    //	};
    //
    //	public static final int LIMIT_ARRAY[]={550,700,130,240,280,310,110,205,260,275};


    //	Database 3
    //	public static final int VALUE_ARRAY[]={
    //			600,310,1800,3850,18,198,882,4200,402,327
    //	};
    //
    //	public static final int ATTRIBUTE_ARRAY[][]={
    //			{20,5,100,200,2,4,60,150,80,40},
    //			{20,7,130,280,2,8,110,210,100,40},
    //			{60,3,50,100,4,2,20,40,6,12},
    //			{60,8,70,200,4,6,40,70,16,20},
    //			{60,13,70,250,4,10,60,90,20,24},
    //			{60,13,70,280,4,10,70,105,22,28},
    //			{5,2,20,100,2,5,10,60,0,0},
    //			{45,14,80,180,6,10,40,100,20,0},
    //			{55,14,80,200,6,10,50,140,30,40},
    //			{65,14,80,220,6,10,50,180,30,50},
    //	};
    //
    //	public static final int LIMIT_ARRAY[]={450,540,200,360,440,480,200,360,440,480};

    //	Database 4
    //	public static final int VALUE_ARRAY[]={
    //			100, 600, 1200, 2400, 500, 2000
    //	};
    //
    //	public static final int ATTRIBUTE_ARRAY[][]={
    //			{8,12,13,64,22,41},
    //			{8,12,13,75,22,41},
    //			{3,6,4,18,6,4},
    //			{5,10,8,32,6,12},
    //			{5,13,8,42,6,20},
    //			{5,13,8,48,6,20},
    //			{0,0,0,0,8,0},
    //			{3,0,4,0,8,0},
    //			{3,2,4,0,8,4},
    //			{3,2,4,8,8,4},
    //	};
    //
    //	public static final int LIMIT_ARRAY[]={80,96,20,36,44,48,10,18,22,24};

    //  Database 5
    //	public static final int VALUE_ARRAY[]={
    //			100,220,90,400,300,400,205,120,160,580,400,140,100,1300,650,320,480,80,60,2550
    //		};
    //
    //		public static final int ATTRIBUTE_ARRAY[][]={
    //				{8,24,13,80,70,80,45,15,28,90,130,32,20,120,40,30,20,6,3,180},
    //				{8,44,13,100,100,90,75,25,28,120,130,32,40,160,40,60,55,10,6,240},
    //				{3,6,4,20,20,30,8,3,12,14,40,6,3,20,5,0,5,3,0,20},
    //				{5,9,6,40,30,40,16,5,18,24,60,16,11,30,25,10,13,5,1,80},
    //				{5,11,7,50,40,40,19,7,18,29,70,21,17,30,25,15,25,5,1,100},
    //				{5,11,7,55,40,40,21,9,18,29,70,21,17,35,25,20,25,5,2,110},
    //				{0,0,1,10,4,10,0,6,0,6,32,3,0,70,10,0,0,0,0,0},
    //				{3,4,5,20,14,20,6,12,10,18,42,9,12,100,20,5,6,4,1,20},
    //				{3,6,9,30,29,20,12,12,10,30,42,18,18,110,20,15,18,7,2,40},
    //				{3,8,9,35,29,20,16,15,10,30,42,20,18,120,20,20,22,7,3,50},
    //		};
    //
    //		public static final int LIMIT_ARRAY[]={550,700,130,240,280,310,110,205,260,275};


    // Database 6
//	public static final int VALUE_ARRAY[]={
//			100,220,90,400,300,400,205,120,160,580,400,140,100,1300,650,320,480,80,60,2550,3100,1100,950,450,300,220,200,520
//	};
//
//	public static final int ATTRIBUTE_ARRAY[][]={
//			{8,24,13,80 ,70 ,80 ,45, 15, 28 ,90, 130, 32, 20 ,120 ,40,30, 20, 6 ,3 ,180, 220, 50 ,30 ,50 ,12 ,5, 8 ,18},
//			{8,44,13,100, 100, 90 ,75, 25 ,28, 120 ,130, 32, 40 ,160 ,40,60 ,55, 10, 6, 240 ,290, 80 ,90 ,70 ,27, 17, 8 ,28},
//			{3,6,4,20 ,20, 30 ,8 ,3 ,12, 1,4 ,40 ,6 ,3 ,20, 5 ,0, 5 ,3 ,0 ,20 ,30 ,40, 10, 0, 5, 0 ,0 ,10},
//			{5,9,6,40 ,30, 40, 16 ,5, 18 ,24 ,60 ,16 ,11 ,30 ,25,10 ,13 ,5 ,1 ,80 ,60, 50, 20, 30 ,10, 5, 3, 20},
//			{5,11,7,50 ,40 ,40 ,19 ,7, 18 ,29 ,70, 21 ,17, 30 ,25,15 ,25, 5 ,1 ,100, 70 ,55 ,20, 50, 15, 15 ,6 ,20},
//			{5,11,7,55 ,40, 40, 21 ,9, 18, 29 ,70 ,21 ,17, 35 ,25,20 ,25 ,5 ,2 ,110, 70 ,55 ,20 ,50 ,20 ,15, 6 ,20},
//			{0,0,1,10 ,4 ,10 ,0, 6, 0 ,6 ,32 ,3 ,0 ,70, 10,0, 0, 0 ,0 ,0 ,30 ,10 ,0, 10, 10, 5, 0 ,10},
//			{3,4,5,20 ,14, 20, 6 ,12 ,10 ,18, 42, 9 ,12 ,100 ,20, 5 ,6 ,4 ,1 ,20, 50, 30 ,5 ,20 ,20, 10, 10, 20},
//			{3,6,9,30 ,29 ,20 ,12, 12, 10 ,30 ,42 ,18, 18 ,110 ,20, 15 ,18 ,7 ,2 ,40 ,60, 50, 25 ,25 ,25 ,15 ,10, 28},
//			{3,8,9,35 ,29 ,20 ,16 ,15 ,10 ,30 ,42, 20 ,18 ,120 ,20 ,20 ,22, 7, 3 ,50, 60, 55, 25, 30, 25, 15 ,10, 28},
//	};
//
//	public static final int LIMIT_ARRAY[]={930,1210,272,462,532,572,240,400,470,490};
    /*
     * 	Related Parameters of Genetic Algorithm.
     */
    public static final int POP_SIZE = 50;
    public static final int CHROM_LENGTH = 50;
    public static final double PROBABILITY_CROSS = 0.8;
    public static final double PROBABILITY_MUTATION = 0.004;
    public static final int MAX_ITER = 100;
    public static final int runTimes = 10;
}
